// request.js
import axios from 'axios';

// 创建 axios 实例
const $axios = axios.create({
  baseURL: 'http://localhost:8080', // 基础 URL
  timeout: 10000, // 请求超时时间（毫秒）
  headers: {
    'Content-Type': 'application/json',
  },
});

// 请求拦截器
$axios.interceptors.request.use(
  config => {
    // 在请求发送之前做些什么
    // 比如添加 Token
    const token = localStorage.getItem('token'); // 假设 token 存储在 localStorage 中
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  error => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 响应拦截器
$axios.interceptors.response.use(
  response => {
    // 对响应数据做些什么
    return response.data; // 直接返回响应数据（根据需要可以调整）
  },
  error => {
    // 对响应错误做些什么
    if (error.response) {
      // 服务器响应了一个状态码
      // 例如 404、500 等
      console.error('Error Response:', error.response);
    } else if (error.request) {
      // 请求已发送，但没有收到响应
      console.error('Error Request:', error.request);
    } else {
      // 其他错误
      console.error('Error Message:', error.message);
    }
    return Promise.reject(error);
  }
);

export default $axios;
